d27fd6d5b0a76962c9e0c4376105e7ef16384b6a,data/org.eclipse.birt.data/src/org/eclipse/birt/data/engine/expression/ExpressionCompilerUtil.java,ExpressionCompilerUtil,extractColumnExpression,#IConditionalExpression#String#,132

Before Change


			IConditionalExpression expression, String indicator ) throws DataException
	{
		List list = new ArrayList( );
		if ( expression == null )
			return list;
		list.addAll( extractColumnExpression( expression.getExpression( ), indicator ) );
		List valueList = extractColumnExpression( expression.getOperand1( ), indicator);
		for ( int i = 0; i < valueList.size( ); i++ )
		{
			if ( !list.contains( valueList.get( i ) ) )
				list.add( valueList.get( i ) );
		}
		valueList = extractColumnExpression( expression.getOperand2( ), indicator );
		for ( int i = 0; i < valueList.size( ); i++ )
		{
			if ( !list.contains( valueList.get( i ) ) )
				list.add( valueList.get( i ) );
		}
		return list;

After Change


    private static void extractColumnExpression( Set<String> existingBindings, IConditionalExpression expression,
            String[] indicators ) throws DataException
    {
        if ( expression != null )
        {
            extractColumnExpression( existingBindings, expression.getExpression( ), indicators );
            extractColumnExpression( existingBindings, expression.getOperand1( ), indicators );
            extractColumnExpression( existingBindings, expression.getOperand2( ), indicators );
        }
    }